package com.idudiao.sc.common.log.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * 用来记录操作日志，默认将方法参数（或实体类）中参数名为key和notes的参数，记录到日志中
 * <p>
 *     当需要记录的主键和备注不是默认值时，需要单独指出
 * </p>
 *
 * @author songyinyin
 * @date 2019/1/8 17:45
 */
@Target(ElementType.METHOD)
@Retention(RUNTIME)
@Documented
public @interface OperationLog {

    /**
     * 是否要保存业务主键和备注
     *      *
     * @return
     */
    boolean value() default true;

    /**
     * 操作对象主键 属性名称，比如：caseKey，默认为：key
     *
     * @return
     */
    String keyName() default "key";

    /**
     * 备注 属性名称，比如：remark，默认为：notes
     *
     * @return
     */
    String notesName() default "notes";
}
